package com.hrt.datasender.process.strategy.hj212;

import com.btcode.db.result.Row;
import com.hrt.datasender.datadao.model.BcSendPlatformModel;
import com.hrt.datasender.datadao.service.BdSendRecordService;
import com.hrt.datasender.datastorage.StorageDataType;
import com.hrt.datasender.mq.MqKit;
import com.hrt.datasender.mq.model.PacketModel;
import com.hrt.datasender.process.indentity.hj212.MessageModel;
import com.hrt.datasender.process.strategy.IProcessStrategy;
import com.hrt.datasender.process.strategy.hj212.util.DataType;
import com.hrt.datasender.process.strategy.hj212.util.StrategyUtil;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

public class Com3011Process implements IProcessStrategy  {

    @Override
    public String getCommandId() {
        // TODO Auto-generated method stub
        return "3011";
    }

    @Override
    public String getStrategyName() {
        return "零点校准";
    }

    @Override
    public Object packet(List<Row> data, BcSendPlatformModel platform) {
        return null;
    }

    @Override
    public Object packetReissue(List<Row> data, BcSendPlatformModel platform) {
        return null;
    }

    @Override
    public void decode(MessageModel data, BcSendPlatformModel sendPlatform) {
        String msg = data.getMsg() + "";
        /**
         * 返回请求应答
         */
        StrategyUtil.responseMsg(sendPlatform,msg,"0","");

        /**
         * ①收到报文，解析报文，插入到组态数据表中
         * ②开启定期扫描功能，扫描组态数据表，若扫到组态数据表有执行结果数据
         * 判断执行结果是否正常，正常则返回成功，错误返回失败。（不转发响应报文）
         * （设置过期时间，比如30秒还没完成，要把任务关闭）
         */
        String id = StrategyUtil.insertRcCmd(msg);
        /**
         * 考虑到access不支持多线程的问题，暂时模拟发送回成功执行
         */
        StrategyUtil.responseMsg(sendPlatform,msg,"1","1");

//        List<Row> rows = StrategyUtil.readRcResult(id,30*1000);
//
//        if(rows!=null&&rows.size()>0){
//            String result = rows.get(0).getSafeString("CMD_RESULT");
//            if(result.contains("ExeRtn=1")){
//                /**
//                 * 返回执行成功结果
//                 */
//                StrategyUtil.responseMsg(sendPlatform,msg,"1","1");
//            }
//            else{
//                /**
//                 * 返回执行失败结果
//                 */
//                StrategyUtil.responseMsg(sendPlatform,msg,"1","2");
//            }
//        }
//        else{
//            /**
//             * 返回执行失败结果
//             */
//            StrategyUtil.responseMsg(sendPlatform,msg,"1","2");
//        }
    }

}
